package com.test.common.advice;

import com.test.common.exception.MyException;
import com.test.common.vo.ExceptionEnum;
import com.test.common.vo.ExceptionResult;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

/**
 * @Description 通用异常处理类
 * @Author Mr.Li
 * @Date 2020/3/10 15:02
 */
@ControllerAdvice // 增强Controller将一些公共的数据定义在添加了 @ControllerAdvice 注解的类中，这样，在每一个 Controller 的接口中，就都能够访问到这些数据。 常用于全局异常处理，全局数据统计，数据预处理
public class CommonException {

    @ExceptionHandler(MyException.class) // @ExceptionHandler 注解用来指明异常的处理类型
    public ResponseEntity<ExceptionResult> handleException(MyException e){
    ExceptionEnum em = e.getExceptionEnum();
    return ResponseEntity.status(em.getStatus()).body(new ExceptionResult(e.getExceptionEnum()));
}
}
